package com.cskaoyan.utils;

import com.cskaoyan.exception.ValidationException;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;

/**
 *  校验参数
 * @author wenkaikai
 * @since 2022/08/15 17:32
 */
public class ValidationUtil {

    public static void valid(BindingResult bindingResult) throws ValidationException {
        if (bindingResult.hasFieldErrors()) {//是否有校验错误
            FieldError fieldError = bindingResult.getFieldError();//拿到校验错误
            // 拿到成员变量名 → 请求参数名
            String field = fieldError.getField();
            // 拿到错误的值
            Object rejectedValue = fieldError.getRejectedValue();
            // 错误消息，一般是默认的,也可在接受类的成员变量上注解属性 message修改
            String defaultMessage = fieldError.getDefaultMessage();
            StringBuffer sb = new StringBuffer();
            String msg = sb.append("请求参数")
                    .append(field)
                    .append("传入的值")
                    .append(rejectedValue)
                    .append("有问题 ---> ")
                    .append(defaultMessage).toString();
            //精彩
            throw new ValidationException(msg);
        }
    }
}